Mise à jour le 13/11/2021
Préparer un entretien technique

Préparer un entretien technique

Si vous avez la chance de passer un entretien technique avec moi, voici éventuellement les questions que je pourrais vous poser.
Bien sur, cela dépend de l'offre pourvue et du niveau d'expérience demandé par celle-ci.
Mais certaines questions seront les mêmes que vous soyez étudiant ou expérimenté.

1. Questions de cultures générales

1.1 Questions autour du web

* Comment fonctionne Internet ?
* Qu'est-ce qu'une application dite serveur web ?
* Existe-t-il d'autres types de serveur ?
* Comment communique concrètement un ordinateur-client avec un serveur-client ?

1.2 Questions autour de PHP

* Pouvez-vous m'écrire une classe qui hérite d'une classe abstraite qui implémente une interface ?
* Pouvez-vous me dire les nouveautés entre chaque nouvelle version de PHP ?
* Quelles sont les techniques courantes pour qu'une page web s'affiche très rapidement ?
* Combien connaissez vous de design pattern ? Quels sont ceux que vous avez déjà utiliser ?
* Que pensez vous de la dernière RFC en reflexion/validée/refusée ?
* Comment fonctionne un ORM ?
* Pouvez-vous m'écrire un algorithme qui filtre un tableau avec et sans regex ?
* Pouvez-vous m'écrire un algorithme qui ferait du multithread (le traitement en lui même ne sera qu'un sleep(rand(0, 20))) ?
* Quelles sont les différentes assertions sous PHPUnit ?

1.2.1 Questions autour du framework

Si vous postulez pour une mission sur un framework particulier :
* Quels sont les composants/sous namespaces les plus courants ?
* Qu'apporte le nouveau composant/bundle natif versus le composant/bundle apporté par quelqu'un d'autre ?
* Quels sont les différences notables entre chaque version majeure ?
* Où sont situés les fichiers de configuration sur la dernière version du framework ? Et la première ?

1.3 Questions autour du JS

* Pouvez-vous m'écrire un algorithme qui ferait un POST sans Jquery ?
* Quelles sont les solutions pour générer des bouts de JS dont une partie du contenu provient d'une base de données ?
* Comment vous controlez qu'une valeur existe dans un tableau ?
* Comment vous testez du code JS ?
* Quelle architecture employez-vous pour classer vos fichiers JS ?

1.4 Questions autour de HTML

* Pouvez-vous écrire le squelette classique d'une page en HTML 5 ?
* Savez-vous définir un tableau HTML ?
* A quoi servent les balises meta ?

1.5 Questions autour de CSS

* Pouvez-vous me définir une animation dont le texte subira une rotation à l'endroit puis à l'envers pendant 5 secondes ?

1.6 Questions autour de SCSS/LESS

* Pouvez-vous me dire comment définit-on un héritage entre les feuilles de style ?
* Pouvez-vous me faire varier une couleur sur un texte de façon aléatoire entre 1 et 5 secondes ?

2. Questions techniques

Et éventuellement, si après 1 heure d'entretien on a fait le tour des questions de culture G, on abordera en anglais des questions plus techniques :
* Théorie des algorithmes
* Structures Stack, Queue, LinkedList, HashMap, PriorityQueue, Binary Tree
* Algorithmes de tri (quicksort, merge sort, radix-sort, bucket sort…),
* Algorithme de recherche (binary search, fulltext search),
* Parcours des arbres (largeur/profondeur)
* Graphes (BFS, DFS …)
* Récursivité
* Gestion de la concurrence
* Manipulation de bits

3. Ne prenez pas peur !

Et enfin, pour vous rassurer : même si vous ne savez pas grand chose de tout cela, l'essentiel est de montrer sur peu de temps votre potentiel : n'hésitez donc pas à prendre les devants et imposer vos sujets techniques.
Après il est sûr que si vous postulez à un poste qui demande 5 ans d'expérience sur du JS et que vous n'avez jamais testé ni React, ni Angular, ni Vue entre 2017 et 2020, on pourra se poser quelques questions sur votre curiosité !

Idéalement, le code sera écrit au tableau blanc/noir.